package com.shensi.api.admin.domian.integral.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.shensi.common.core.annotation.Excel;
import com.shensi.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 【请填写功能名称】对象 integral_rule
 *
 * @author shensi
 * @date 2021-03-11
 */
public class IntegralRuleDto extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private Long id;

    /**
     * 油站id
     */
    private Long stationId;

    /**
     * 油站名称
     */
    private String stationName;

    /**
     * 有效期设置
     */
    private String termDateManage;

    /**
     * 清空积分时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date emptyDate;

    /**
     * 积分活动设置
     */
    private String integralActivity;

    /**
     * 日期选择
     */
    private String datePicker;

    /**
     * 日期选择
     */
    private String datePickerTime;
    /**
     * 积分比例
     */
    private String integralProportion;

    /**
     * 积分有效期设置
     */
    private String integralTermSetting;
    /**
     * 积分清空时间
     */

    private BigDecimal ruleTerms;
    private String ruleType;
    /**
     * 会员等级
     */
    private String grade;
    /**
     * 油品名称
     */
    private String oilName;
    /**
     * 每消费金额
     */
    private BigDecimal saleAmt;
    /**
     * 兑换积分
     */
    private BigDecimal integral;
    /**
     * 油品类型 1.油品。2.非油品
     */
    private String oilType;

    private String integralFlag;
    private String image1;
    private String image2;
    private String image3;
    private String image4;
    private String image5;
    private String gradeName;
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date integralEmptyTime;


    /**
     * 规则类型
     */
    @Excel(name = "成长值")
    private Long growValue;


    /**
     * 油企的id信息
     */
    private Long enterpriseId;


    public Long getEnterpriseId() {
        return enterpriseId;
    }

    public void setEnterpriseId(Long enterpriseId) {
        this.enterpriseId = enterpriseId;
    }

    public Long getGrowValue() {
        return growValue;
    }

    public void setGrowValue(Long growValue) {
        this.growValue = growValue;
    }

    public Date getIntegralEmptyTime() {
        return integralEmptyTime;
    }

    public void setIntegralEmptyTime(Date integralEmptyTime) {
        this.integralEmptyTime = integralEmptyTime;
    }

    public String getGradeName() {
        return gradeName;
    }

    public void setGradeName(String gradeName) {
        this.gradeName = gradeName;
    }

    public String getImage1() {
        return image1;
    }

    public void setImage1(String image1) {
        this.image1 = image1;
    }

    public String getImage2() {
        return image2;
    }

    public void setImage2(String image2) {
        this.image2 = image2;
    }

    public String getImage3() {
        return image3;
    }

    public void setImage3(String image3) {
        this.image3 = image3;
    }

    public String getImage4() {
        return image4;
    }

    public void setImage4(String image4) {
        this.image4 = image4;
    }

    public String getImage5() {
        return image5;
    }

    public void setImage5(String image5) {
        this.image5 = image5;
    }

    public String getIntegralFlag() {
        return integralFlag;
    }

    public void setIntegralFlag(String integralFlag) {
        this.integralFlag = integralFlag;
    }

    public BigDecimal getRuleTerms() {
        return ruleTerms;
    }

    public void setRuleTerms(BigDecimal ruleTerms) {
        this.ruleTerms = ruleTerms;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getOilName() {
        return oilName;
    }

    public void setOilName(String oilName) {
        this.oilName = oilName;
    }

    public BigDecimal getSaleAmt() {
        return saleAmt;
    }

    public void setSaleAmt(BigDecimal saleAmt) {
        this.saleAmt = saleAmt;
    }

    public BigDecimal getIntegral() {
        return integral;
    }

    public void setIntegral(BigDecimal integral) {
        this.integral = integral;
    }

    public String getOilType() {
        return oilType;
    }

    public void setOilType(String oilType) {
        this.oilType = oilType;
    }

    public String getIntegralTermSetting() {
        return integralTermSetting;
    }

    public void setIntegralTermSetting(String integralTermSetting) {
        this.integralTermSetting = integralTermSetting;
    }

    private List<IntegralRuleDetailDto> itemsDetail;
    private List<IntegralShopPicDto> imgFileList;

    public String getDatePickerTime() {
        return datePickerTime;
    }

    public void setDatePickerTime(String datePickerTime) {
        this.datePickerTime = datePickerTime;
    }

    public List<IntegralShopPicDto> getImgFileList() {
        return imgFileList;
    }

    public void setImgFileList(List<IntegralShopPicDto> imgFileList) {
        this.imgFileList = imgFileList;
    }

    public List<IntegralRuleDetailDto> getItemsDetail() {
        return itemsDetail;
    }

    public void setItemsDetail(List<IntegralRuleDetailDto> itemsDetail) {
        this.itemsDetail = itemsDetail;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setStationId(Long stationId) {
        this.stationId = stationId;
    }

    public Long getStationId() {
        return stationId;
    }

    public void setStationName(String stationName) {
        this.stationName = stationName;
    }

    public String getStationName() {
        return stationName;
    }

    public void setRuleType(String ruleType) {
        this.ruleType = ruleType;
    }

    public String getRuleType() {
        return ruleType;
    }

    public void setTermDateManage(String termDateManage) {
        this.termDateManage = termDateManage;
    }

    public String getTermDateManage() {
        return termDateManage;
    }

    public void setEmptyDate(Date emptyDate) {
        this.emptyDate = emptyDate;
    }

    public Date getEmptyDate() {
        return emptyDate;
    }

    public void setIntegralActivity(String integralActivity) {
        this.integralActivity = integralActivity;
    }

    public String getIntegralActivity() {
        return integralActivity;
    }

    public void setDatePicker(String datePicker) {
        this.datePicker = datePicker;
    }

    public String getDatePicker() {
        return datePicker;
    }

    public void setIntegralProportion(String integralProportion) {
        this.integralProportion = integralProportion;
    }

    public String getIntegralProportion() {
        return integralProportion;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("stationId", getStationId())
                .append("termDateManage", getTermDateManage())
                .append("emptyDate", getEmptyDate())
                .append("integralActivity", getIntegralActivity())
                .append("datePicker", getDatePicker())
                .append("integralProportion", getIntegralProportion())
                .append("integralEmptyTime", getIntegralEmptyTime())
                .toString();
    }
}
